/**
 * mixin
 * 页面按钮权限
 */
import {
	getList
} from '@/api/menu.js'

export default {
	data() {
		return {
			pageBtnList: [],
			pageBtnObj: {},
			pageBtn: [],
			pageBtnNameList: [],
		}
	},
	created() {
		this.getPageBtn();
	},
	methods: {
		// 查询本页面按钮 数据处理
		getPageBtn() {
			getList({
				term_type: 2,
				pid: this.urlQuery.menuId
			}).then(({
				data: {
					data
				}
			}) => {
				this.pageBtnList = data.list.filter((item) => {
					return item.status == '1' && item.is_show == '1'
				})
				this.pageBtnList.forEach((item) => {
					if (item.guard) {
						item.guard = item.guard.split(',')
					} else {
						item.guard = []
					}
					if (item.name == 'update') {
						if (item.btn_show) {
							item.btn_show_field = item.btn_show.split(',')[0]
							item.btn_show_field_val = item.btn_show.split(',')[1]
							item.btn_show_List = item.btn_show.split(',').slice(2)
						} else {
							item.btn_show_field = ''
							item.btn_show_field_val = ''
							item.btn_show_List = []
						}
					}
					if (item.name == 'modify') {
						if (item.btn_show) {
							item.btn_modify_fields = item.btn_show.split(',')
						} else {
							item.btn_modify_fields = []
						}
					}
					if (
						item.name == 'edit' ||
						item.name == 'del' ||
						item.name == 'send'
					) {
						if (item.btn_show) {
							item.btn_edit_del_send_show_field = item.btn_show.split(',')[0]
							item.btn_edit_del_send_show_List = item.btn_show
								.split(',')
								.slice(1)
						} else {
							item.btn_edit_del_send_show_field = ''
							item.btn_edit_del_send_show_List = []
						}
					}
					this.$set(this.pageBtnObj, item.name, item)
				})
				this.pageBtnNameList = this.pageBtnList
					.filter((item) => {
						return item.name != 'list'
					})
					.map((item) => {
						return item.name
					})
				this.pageBtn = this.pageBtnList
					.filter((item) => {
						return item.name != 'list'
					})
					.map((item) => {
						return item.guard
					})
			})
		},
		// 是否有对应的按钮api
		hasBtnApi(api) {
			let isShow = false
			for (let item of this.pageBtn) {
				if (item.indexOf(api) != -1) {
					isShow = true
				}
			}
			return isShow
		},
		// 是否有对应的按钮name标识
		hasBtnName(name) {
			let isShow = false
			for (let item of this.pageBtnNameList) {
				if (name == '') {
					isShow = false
				} else if (item.indexOf(name) != -1) {
					isShow = true
				}
			}
			return isShow
		},
		// 千分位
		kgRule(kg) {
			if (kg) {
				return (kg + '').replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,')
			} else {
				return kg
			}
		},
	},
}
